package com.uzai.common.dto.device;


import java.io.Serializable;
import java.util.List;

/**
 * @Auther: xiaoyuexl
 * @Date: 2021/8/17 15:34
 * @Description: 设备详细信息缓存数据结构
 */

public class DeviceInfoBaseCache implements Serializable {
    private static final long serialVersionUID = 5063248761913698018L;

    /**
     * 设备产品授权
     */
    public static class DeviceProductAuth implements Serializable{
        private static final long serialVersionUID = 5419895803341828054L;

        public DeviceProductAuth(){}

        /**
         * 授权类型
         */
        private Integer authType;

        /**
         * 授权过期时间
         */
        private Integer expireTime;

        /**
         * 产品类型编号
         */
        private String productCode;

        public Integer getAuthType() {
            return authType;
        }

        public void setAuthType(Integer authType) {
            this.authType = authType;
        }

        public Integer getExpireTime() {
            return expireTime;
        }

        public void setExpireTime(Integer expireTime) {
            this.expireTime = expireTime;
        }

        public String getProductCode() {
            return productCode;
        }

        public void setProductCode(String productCode) {
            this.productCode = productCode;
        }
    }

    /**
     * 客户端版本号
     */
    private String clientVersion;

    /**
     * 运营商ID
     */
    private Long merId;

    /**
     * 设备ID(wxid)
     */
    private String deviceId;

    /**
     * 设备唯一ID
     */
    private Long deviceUniqueId;

    /**
     * 设备名称
     */
    private String deviceName;

    /**
     * 设备备注
     */
    private String deviceRemark;

    /**
     * 设备头像
     */
    private String headImgUrl;

    /**
     * 配置方案Id
     */
    private Long configId;

    /**
     * 最后更新心跳的时间
     */
    private Integer lastHeartBeatTime;

    /**
     * 微信/抖音版本号
     */
    private String wxVersion;

    /**
     * 设备产品授权
     */
    private List<DeviceProductAuth> deviceAuths;


    /**
     * 是否处理消息(0-不处理；1-处理)(个人微信PC和手机同时只能一个端处理消息)
     */
    private Integer msgHandler;

    /**
     * 更新客户端版本状态(0-无更新；1-有更新；2-更新中; 3-更新失败(当状态为2时，验证更新时间是否超过5分钟，超过就更新失败)")
     */
    private Integer updateClientVersionStatus;

    /**
     * 更新客户端版本时间
     */
    private Integer updateClientVersionTime;

    /**
     * 最后登录时间
     */
    private Integer lastLoginTime;

    public String getClientVersion() {
        return clientVersion;
    }

    public void setClientVersion(String clientVersion) {
        this.clientVersion = clientVersion;
    }

    public String getDeviceName() {
        return deviceName;
    }

    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }

    public String getDeviceRemark() {
        return deviceRemark;
    }

    public void setDeviceRemark(String deviceRemark) {
        this.deviceRemark = deviceRemark;
    }

    public String getHeadImgUrl() {
        return headImgUrl;
    }

    public void setHeadImgUrl(String headImgUrl) {
        this.headImgUrl = headImgUrl;
    }

    public Long getConfigId() {
        return configId;
    }

    public void setConfigId(Long configId) {
        this.configId = configId;
    }

    public Integer getLastHeartBeatTime() {
        return lastHeartBeatTime;
    }

    public void setLastHeartBeatTime(Integer lastHeartBeatTime) {
        this.lastHeartBeatTime = lastHeartBeatTime;
    }

    public String getWxVersion() {
        return wxVersion;
    }

    public void setWxVersion(String wxVersion) {
        this.wxVersion = wxVersion;
    }

    public List<DeviceProductAuth> getDeviceAuths() {
        return deviceAuths;
    }

    public void setDeviceAuths(List<DeviceProductAuth> deviceAuths) {
        this.deviceAuths = deviceAuths;
    }

    public Long getMerId() {
        return merId;
    }

    public void setMerId(Long merId) {
        this.merId = merId;
    }

    public String getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(String deviceId) {
        this.deviceId = deviceId;
    }

    public Long getDeviceUniqueId() {
        return deviceUniqueId;
    }

    public void setDeviceUniqueId(Long deviceUniqueId) {
        this.deviceUniqueId = deviceUniqueId;
    }

    public Integer getMsgHandler() {
        return msgHandler;
    }

    public void setMsgHandler(Integer msgHandler) {
        this.msgHandler = msgHandler;
    }

    public Integer getUpdateClientVersionStatus() {
        return updateClientVersionStatus;
    }

    public void setUpdateClientVersionStatus(Integer updateClientVersionStatus) {
        this.updateClientVersionStatus = updateClientVersionStatus;
    }

    public Integer getUpdateClientVersionTime() {
        return updateClientVersionTime;
    }

    public void setUpdateClientVersionTime(Integer updateClientVersionTime) {
        this.updateClientVersionTime = updateClientVersionTime;
    }

    public Integer getLastLoginTime() {
        return lastLoginTime;
    }

    public void setLastLoginTime(Integer lastLoginTime) {
        this.lastLoginTime = lastLoginTime;
    }
}
